Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.
Что делать, если у пользователя возникают ошибки, «все тормозит» или возникают другие неясные проблемы, а разработчик не знает где искать проблему в коде?
С этой статьи мы начинаем нашу рубрику по расследованию проблем производительности и стабильности работы систем на базе 1С:Предприятия.
Речь пойдет о реальных примерах анализа технологического журнала 1С экспертами с помощью регулярных выражений.
1. Как получить все таймауты 1С?
2. Как получить все события исключений (EXCP) в определенный час работы?
3. Как получить определенное количество строк до и после интересующих событий?
Расследования проводим путем разбора собранного технологического журнала, в том числе с использованием утилит bash 1С регулярными выражениями. Весь перечень утилит уже озвучивался в официальной статье от 1С на ИТС https://its.1c.ru/db/metod8dev/content/5927/hdoc . Мы же для парсинга тж используем инструмент git bash.
Но,
чтобы парсить технологический журнал 1С — сначала его надо собрать. А для этого выполнить ряд настроек описанных в Настройка и сбор логов для анализа проблем производительности систем 1С на Linux.
Набор собираемых событий, а также список серверов, где данные события фиксируем — должны соответствовать характеру расследуемой проблемы.
Так, например:
- Если известно, что проблемы с производительность наблюдаются как при подключении к базе через веб-сервер, так и при подключении «напрямую» через сервер 1С. В этом случае, можно не собирать технологический журнал на веб-сервере.
- Если расследуем высокую загрузку сервера СУБД, то собирать необходимо события, связанные с запросами СУБД и планами запросов.
- Если же, ситуация неоднозначная изначально, то необходимо включить наиболее полный журнал и на всех серверах где установлены компоненты 1С:
-
- Центральные серверы 1С;
- Рабочие серверы 1С;
- Серверы лицензий 1С;
- Веб-серверы с установленной компонентой веб-расширения 1С.
Пример настройки такого журнала приведен тут же Настройка и сбор логов для анализа проблем производительности систем 1С на Linux.
При этом следует помнить, что при включении такой настройки потребуется внимательно следить за местом на серверах.
Итак, от простого к сложному….
Примеры простых выражений:
Как получить все таймауты 1С?
1 |
grep -P 'TTIMEOUT' --color / D /logs1c/rphost_*/*.log |
Как получить все события исключений (EXCP) в определенный час работы?
(в нашем случае 26 апреля 2021 года в 21 час 33 минуты или 34 минуты во всех каталогах рабочих процессов)
1 |
grep -P '^33:.+EXCP|^34:.+EXCP' --color /D/logs1с/rphost_*/21042621.log |
Как получить определенное количество строк до и после интересующих событий?
(в нашем случае 20 строк до и после исключения (EXCP))
1 |
grep EXCP /D/logs1с/rphost_*/*.log -C 20 |
Отметим, что прежде чем приступать к сбору и анализу — для начала рекомендуем провести первичный сбор информации. О том, как это сделать написано в 1C тормозит и возникают ошибки. С чего начать расследование?
P.S. Все фамилии, пользователи и сервера в дальнейших статьях — вымышленные, любое совпадения с реальными – случайно…
Еще можно посмотреть
Похожие записи
- Ошибка 1С:Предприятие «Потеряно соединение»
- Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Пропажа индексов дескрипторов в 1С:Документообороте
- Технологический журнал 1С и бесконечный цикл в коде 1С
- История одного конфликта блокировок 1С
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Администрирование серверов 1С на Linux
- Настройка и сбор логов для анализа проблем производительности систем 1С на Linux